1. Field
This invention relates to hardware virtualization, and in particular to efficient handling of virtual hardware memory accesses.
2. Related Art
Software programs wishing to communicate with a piece of hardware generally do so via a device driver. A device driver is a piece of software that acts as an interface between a piece of hardware and programs wishing to communicate with the hardware. One way a device driver communicates with the hardware is by writing to and reading from memory locations mapped from the virtual memory of the computer running the software to memory locations of the hardware.
In a hardware virtualization environment, one or more pieces of physical hardware are virtualized by software acting as “virtual hardware”. The virtual hardware simulates the results of memory accesses to addresses associated with the piece of hardware via a virtual memory mapping. The present invention discloses systems and methods for efficient processing of virtual hardware memory accesses to using runtime code patching.